Crosstalk (or inter-channel interference) is a major source of channel impairment for Multiple Input Multiple Output (MIMO) wired communication systems, such as Digital Subscriber Line (DSL) communication systems.
As the demand for higher data rates increases, DSL systems are evolving toward higher frequency bands, wherein crosstalk between neighboring transmission lines (that is to say transmission lines that are in close vicinity over part or whole of their length, such as twisted copper pairs in a cable binder) is more pronounced (the higher frequency, the more coupling).
A MIMO system can be described by the following linear model:Y(k)=H(k)X(k)+Z(k)  (1),wherein the N-component complex vector X, respectively Y, denotes a discrete frequency representation, as a function of the frequency/carrier/tone index k, of the symbols transmitted over, respectively received from, the N channels,    wherein the NxN complex matrix H is referred to as the channel matrix: the (i,j)-th component hij of the channel matrix H describes how the communication system produces a signal on the i-th channel output in response to a signal being transmitted to the j-th channel input; the diagonal elements of the channel matrix describe direct channel coupling, and the off-diagonal elements of the channel matrix (also referred to as the crosstalk coefficients) describe inter-channel coupling,    and wherein the N-component complex vector Z denotes additive noise over the N channels, such as Radio Frequency Interference (RFI) or thermal noise.
Different strategies have been developed to mitigate crosstalk and to maximize effective throughput, reach and line stability. These techniques are gradually evolving from static or dynamic spectral management techniques to multi-user signal coordination (or vectoring).
One technique for reducing inter-channel interference is joint signal precoding: the transmit data symbols are jointly passed through a precoder before being transmitted over the respective communication channels. The precoder is such that the concatenation of the precoder and the communication channels results in little or no inter-channel interference at the receivers.
A further technique for reducing inter-channel interference is joint signal post-processing: the receive data symbols are jointly passed through a postcoder before being detected. The postcoder is such that the concatenation of the communication channels and the postcoder results in little or no inter-channel interference at the receivers.
The choice of the vectoring group, that is to say the set of communication lines, the signals of which are jointly processed, is rather critical for achieving good crosstalk mitigation performances. Within a vectoring group, each communication line is considered as a disturber line inducing crosstalk into the other communication lines of the group, and the same communication line is considered as a victim line receiving crosstalk from the other communication lines of the group. Crosstalk from lines that do not belong to the vectoring group is treated as alien noise and is not canceled.
Ideally, the vectoring group should match the whole set of communication lines that physically and noticeably interact with each other. Yet, local loop unbundling on account of national regulation policies and/or limited vectoring capabilities may prevent such an exhaustive approach, in which case the vectoring group would include a sub-set only of all the physically interacting lines, thereby yielding limited vectoring gains.
Signal vectoring is typically performed within a Distribution Point Unit (DPU), wherein all the data symbols concurrently transmitted over, or received from, all the subscriber lines of the vectoring group are available. For instance, signal vectoring is advantageously performed within a Digital Subscriber Line Access Multiplexer (DSLAM) deployed at a Central Office (CO) or as a fiber-fed remote unit closer to subscriber premises (street cabinet, pole cabinet, etc). Signal precoding is particularly appropriate for downstream communication (toward customer premises), while signal post-processing is particularly appropriate for upstream communication (from customer premises).
Linear signal precoding is advantageously implemented by means of matrix products: a linear precoder performs a matrix-product in the frequency domain of a transmit vector U(k) with a precoding matrix P(k), the precoding matrix P (k) being such that the overall channel matrix H(k)P(k) is diagonalized, meaning the off-diagonal coefficients of the overall channel H(k)P(k), and thus the inter-channel interference, mostly reduce to zero.
Practically, and as a first order approximation, the precoder superimposes anti-phase crosstalk pre-compensation signals over the victim line along with the direct signal that destructively interfere at the receiver with the actual crosstalk signals from the respective disturber lines.
More formally, let us write the channel matrix H as:H=D·(I+G)  (2),wherein the carrier index k has been voluntarily omitted, D is a diagonal matrix comprising the direct channel coefficients hii, I is the identity matrix, and G is an off-diagonal crosstalk channel matrix comprising the normalized crosstalk coefficients hij/hii.
Ideal Zero-Forcing (ZF) linear precoding is achieved when the precoding matrix P implements the inverse of the normalized crosstalk coupling channel, namely:P=(I+G)−1  (3),such that H·P=D, the latter being compensated by single-tap Frequency EQualization (FEQ) at the receiver. With linear ZF precoding, the noise at the receiver input is enhanced by the direct channel frequency response by a factor 1/hi,i. We also note that the noise is evenly enhanced for identical lines as they are all expected to have an equal path loss hi,i.
With the advent of new copper access technologies and the use of even broader spectrum up to and beyond 100 MHz, the crosstalk power increases and may exceed the direct signal power, yielding a negative Signal to Noise Ratio (SNR). The superimposition of the crosstalk precompensation signals on the victim line may thus cause a violation of the transmit Power Spectral Density (PSD) mask, which defines the allowed amount of signal power for an individual user as a function of frequency, and may as well result in signal clipping within the Digital to Analog Converter (DAC) chipset causing severe signal distortions.
A prior art solution is to scale down the direct signal gains such that the transmit signals, including both the direct and precompensation signals, remain within the allowed limit. The PSD reduction is line and frequency dependent, and may change over time, e.g. when a line joins or leaves the vectoring group. The change in direct signal gains must be communicated to the receiver to avoid FEQ issues. This first solution has been described in a standard contribution to the International Telecommunication Union (ITU) from Alcatel-Lucent entitled “G.fast: Precoder Gain Scaling”, reference ITU-T SG15 Q4a 2013-03-Q4-053, March 2013.
Another prior art solution is the use of Non-Linear Precoding (NLP), which applies modulo arithmetic operation to shift a transmit constellation point with excessive power back within the constellation boundary. At the receiver, the same modulo operation will shift the signal back to its intended position.
The idea to employ modulo arithmetic to bound the value of the transmit signal was first introduced by Tomlinson and Harashima independently and nearly simultaneously with application to single-user equalization (M. Tomlinson, “New Automatic Equalizer Employing Modulo Arithmetic” Electronics Letters, 7(5-6), pp. 138-139, March 1971; and H. Harashima, and H. Miyakawa, “Matched-Transmission Technique for Channels with Inter Symbol Interference” IEEE Trans. on Communications, 20(4), pp. 774-780, August 1972). Ginis and Cioffi applied the concept to multi-user system with precoding for crosstalk cancellation (G. Ginis and J. M. Cioffi, “A Multi-User Precoding Scheme Achieving Crosstalk Cancellation with Application to DSL systems”, Proc. 34th Asilomar Conference on Signals, Systems and Computers, 2000).
Yet, modulo operation directly affects the transmit signal and thus the actual crosstalk induced onto the system, ending into a ‘chicken-egg’ problem: modulo operation for a first user alters precompensation for a second user; altered precompensation for the second user alters modulo operation for the second user; altered modulo operation for the second user user alters precompensation for the first user; and altered precompensation for the first user alters modulo operation for the first user; and so on.
In order to overcome this issue, the non-linear precoder is constructed using QR matrix decomposition. A good overview of the technique, with step-by-step description of the functions is given by Ikanos (S. Singh, M. Sorbara, “G.fast: Comparison of Linear and Non-Linear Pre-coding for G.fast on 100m BT Cable”, ITU-T SG15 Q4a contribution 2013-01-Q4-031, January 2013).
The conjugate transpose of the normalized channel matrix is first factored into two matrices, namely:(I+G)*=QR  (4),wherein * denotes the conjugate transpose, R is an N×N upper triangular matrix, Q is a N×N unitary matrix that preserves power (i.e., Q*Q=I), and N denotes the number of subscriber lines in the vectoring group.
One diagonalizing precoding matrix is then given by:P=QR*−1  (5)yielding HP=D(I+G)QR*−1=DR*Q*QR*−1=D.
Let us write:R*−1=LS−1  (6),wherein L is a N×N lower triangular matrix with unit diagonal, and S is a N×N normalization diagonal matrix whose elements are the diagonal elements of R*.
The diagonal matrix S indicates a per-line precoding gain that depends on the encoding order. S scaling is to be disposed of as modulo operation has to operate on normalized frequency samples, thereby yielding P=QL and HP=D(I+G)QL=DR*Q*QR*−1S=DS. A further equalization step S−1 is thus required at the receiver to recover the initial transmit sample.
The non-linear precoder comprises a first feedforward filter L, or equivalently a first feedback filter I−S−1R*, followed by a second feedforward filter Q.
In a first step, the transmit vector U is multiplied row by row with the lower triangular matrix L, but before proceeding to the next row, the output for element i is adapted through a modulo operation, thereby keeping the transmit power within the allowed bounds. The triangular structure of the matrix L is a solution to the aforementioned ‘chicken-egg’ problem: the modulo output for user i serves as input for users j encoded later (j>i), but does not affect the output of users k encoded earlier (k<i).
In a second step, the resulting vector is multiplied with the matrix Q, which preserves the initial transmit power on account of its unitary property.
More formally, the output of the non-linear precoder x′ is given by:
                                          x            1            ′                    =                      u            1                          ⁢                                  ⁢                              x            2            ′                    =                                    Γ                              2                ,                k                                      ⁡                          (                                                u                  2                                -                                                                            r                      21                                                              r                      22                                                        ⁢                                      x                    1                    ′                                                              )                                      ⁢                                  ⁢        ⋮        ⁢                                  ⁢                                            x              N              ′                        =                                          Γ                                  N                  ,                  k                                            ⁡                              (                                                      u                    N                                    -                                                                                    r                                                  NN                          -                          1                                                                                            r                        NN                                                              ⁢                                          x                                              N                        -                        1                                            ′                                                        -                  …                  -                                                                                    r                                                  N                          ⁢                                                                                                          ⁢                          1                                                                                            r                        NN                                                              ⁢                                          x                      1                      ′                                                                      )                                              ,                                    (        7        )            wherein rij denotes the coefficients of R*, and i,k denotes the modulo operator as a function of the constellation size for carrier k and user i.
The modulo operator i,k is given by:
                                                        Γ                              i                ,                k                                      ⁡                          (                              x                                  i                  ,                  k                                            )                                =                                    x                              i                ,                k                                      -                          d              ·                              M                                  i                  ,                  k                                            ·                              ⌊                                                                            x                                              i                        ,                        k                                                              +                                          ⅆ                                              ·                                                                              M                                                          i                              ,                              k                                                                                /                          2                                                                                                                          ⅆ                                          ·                                              M                                                  i                          ,                          k                                                                                                                    ⌋                                                    ,                            (        8        )            wherein xi,k denotes a transmit frequency sample for carrier k and user i, Mi,k denotes the number of constellation points per I/Q dimension for carrier k and user i, and d denotes the distance between neighboring constellation points in the one dimension.
The complexity of vectoring N lines through NLP is b2(N2+N(N+1)/2)=b2(3N2/2+N/2) multiply-accumulate operations, wherein b denotes the number of bits used in computer arithmetic, and excluding the modulo operation that may count as one or two complex multiply-accumulate operations per line.
At the receiver, the equalized receive signal samples are given by:
                              y          i          ′                =                                            r              ii                        ⁢                                          Γ                                  i                  ,                  k                                            (                                                u                  i                                -                                                      ∑                                          j                      =                      1                                                              i                      -                      1                                                        ⁢                                                                                    r                        ij                                                                    r                        ii                                                              ⁢                                          x                      j                      ′                                                                                  )                                +                                    ∑                              j                =                1                                            i                -                1                                      ⁢                                          r                ij                            ⁢                              x                j                ′                                              +                                    z              i                        .                                              (        9        )            
A further equalization step S−1 together with a further modulo operation is then needed to recover the initial transmit vector U:
                                          y            ^                    i                =                                            Γ                              i                ,                k                                      ⁡                          (                                                y                  i                  ′                                                  r                  ii                                            )                                =                                                    Γ                                  i                  ,                  k                                            (                                                                    Γ                                          i                      ,                      k                                                        (                                                            u                      i                                        -                                                                  ∑                                                  j                          =                          1                                                                          i                          -                          1                                                                    ⁢                                                                                                    r                            ij                                                                                r                            ii                                                                          ⁢                                                  x                          j                          ′                                                                                                      )                                +                                                      ∑                                          j                      =                      1                                                              i                      -                      1                                                        ⁢                                                                                    r                        ij                                                                    r                        ii                                                              ⁢                                          x                      j                      ′                                                                      +                                                      z                    i                                                        r                    ii                                                              )                        =                                                            Γ                                      i                    ,                    k                                                  ⁡                                  (                                                            u                      i                                        +                                                                  z                        i                                                                    r                        ii                                                                              )                                            .                                                          (        10        )            
The term
      u    i    +            z              i        ⁢                                              r      ii      is expected to be within the constellation boundaries and thus
      Γ          i      ,      k        ⁡      (                  u        i            +                        z          i                          r          ii                      )  should be equal to
      u    i    +                    z                  i          ⁢                                                            r        ii              .  The decision ûi is then made on that sample.
The corresponding reference model has been depicted in FIG. 1.
We note that the non-linear precoder implemented with QR matrix decomposition achieves ZF equalization, while the noise sample at the receiver input is enhanced by a factor of 1/rii. We also note that for a cable with identical lines, the diagonal values of the R* matrix do not have the same value; hence the noise enhancement is not the same on each line, which may lead to an unfair distribution of bit rates to the different users depending on the level of crosstalk couplings.
Several issues arise due to the step-wise approach of going first through a feedback filter followed by a feedforward filter.
A first issue is the amount of processing resources required for updating the non-linear precoder. If P needs to be updated (e.g., for tracking the crosstalk channel variation), then Q and L need to be updated as well. There is no known solution for updating Q and L independently simultaneously. Hence each tracking step comprises a new decomposition of the updated P or H matrix.
Another issue is the added quantization noise on account of the extra multiplication stage. As compared to linear precoding with one single matrix multiplication, the quantization noise is doubled due to two successive multiplications with two matrices L and Q respectively.
Still another issue is related to discontinuous transmission mode, wherein one or more subscriber lines are put into some passive state without any signal being transmitted, thereby saving some substantial power. This involves running through several sub-blocks of Q and L multiple times, increasing the run-time complexity by a factor of nearly 2.